(1) Field
The field of the present application relates to cryptography and, more specifically, to synchronization of cryptographic seed values at an encryptor and decryptor.
(2) Description of Relevant Art
Interest in cryptography and secure communication has increased with the growing use of electronic communication. Most electronic communication occurs over networks that are susceptible to unwanted and often undetectable monitoring, such that a private message carried across such networks can be intercepted and viewed by unintended recipients. Cryptographic systems and methods provide security against such monitoring by encrypting a message before it is placed onto a network so that the encrypted information becomes unintelligible to any recipient lacking the means to decrypt the encrypted message.
In the most basic cryptographic systems and methods, an encryptor employs an encryption method that is known to a corresponding decryptor, which employs a decryption counter-method. An example of a primitive encryption method is a codebook, which for example contains rules for replacing instances of a particular character with another character. Consider a codebook with three rules that replace occurrences of “a” with “c”, “c” with “g”, and “g” with “a”. According to such a codebook, the word “grace” when encrypted would then become “arcge”, which would seem to be unintelligible to an observer having no knowledge of the codebook rules. However, an observer having an opportunity to observe multiple encrypted words or sentences may be able to recognize patterns/repetitions in the observations and/or may be able to decipher an encrypted word based on context. For example, utilizing the same codebook, the words “he walked with grace and dignity” becomes “he wclked with arcge and dianity”, which can be more readily recognized by the context and pattern of surrounding characters. An attempt to decipher encrypted messages without full knowledge of the encryption method is known as code breaking.
As code breaking efforts have become more effective, efforts to develop more complex cryptographic systems and methods have also improved. FIG. 1 shows an encryptor 102 and a decryptor 104 that utilize a “seed” value 106 to perform their respective encryption and decryption tasks. A seed value 106 can be used to initialize an encryption method and/or can be used during an encryption method 102, such that aside from code breaking, a message 108 encrypted using a particular seed value 106 can be deciphered only if the decryptor 104 also utilizes the same seed value 106. Thus, one manner in which data security can be improved involves periodically altering the seed value 106 provided to an encryptor and a decryptor. An encryptor and a decryptor are often located remotely with respect to each other, and rather than communicating a seed value from an encryptor to a decryptor, current implementations can provide the seed values 206, 208 by independently maintaining them at the encryptor 202 and at the decryptor 204, as shown in FIG. 2, thereby decreasing the risk of an unintended recipient learning the seed values.
In modern systems, an encryptor likely may not be able to communicate directly with a decryptor and may be required to communicate through an intermediate communications mechanism, such as the computer/telecommunications network 210 shown in FIG. 2. In such systems, an encryptor 202 is located at a transmitter 212 and a corresponding decryptor 204 is located at a receiver 214. The encryptor 202 can provide encrypted data 216 to the transmitter 212 to be communicated across the network 210, and the receiver 214 can receive encrypted data 218 from the network 210 to be passed to the decryptor 204. It is well known that communications networks are unreliable in that data carried over a network may be corrupted, delayed, and/or discarded due to noise interference, equipment failure, traffic congestion, and/or other phenomena. Accordingly, the received data 218 at a receiver may not be the same as the encrypted data 216 that a transmitter intended the receiver to receive.
In some cases, the problem can be mitigated by using a receiver communications protocol that is able to recognize when such data loss/data corruption occurs. However, in other cases, a receiver 214 will not always be able to recognize when encrypted data 216 becomes lost in transmission. Further, a receiver 214 may in some instances discard data that has been corrupted. In either case, the decryptor 204 generally does not receive any notification that a problem has occurred and continues to generate seed values 208 as before. Accordingly, in case of packet loss, a decryptor 204 may inadvertently apply a particular seed value to decrypt a non-corresponding encrypted data in place of a corresponding encrypted data that was never received, which can cause subsequently received data to also be decrypted using incorrect seed values. When a decryptor uses an incorrect seed value to decipher an encrypted message, the decryptor is said to be “unsynchronized”.
Existing systems and methods are available to recognize that a decryptor is unsynchronized and to perform resynchronization. The Internet Engineering Task Force defines a resynchronization mechanism for packet-based communications called Internet Protocol Security, or IPsec. The workings of IPsec are described in Request For Comments (RFC) documents RFC 2401 through RFC 2412, which are hereby incorporated herein by reference. In particular, RFC 2405 describes an encryption methodology that produces encrypted data using an initialization vector (IV) and that explicitly communicates the encrypted data together with its corresponding IV in a packet. When the packet is received at the destination, a decryptor can use the IV to decrypt the encrypted data. As another example, U.S. Pat. No. 6,697,490 to Mizikovsky et al. describes that a transmitter signature can be appended to encrypted data, and after being received at a receiver, the transmitter signature can be compared to a receiver-generated signature. Based on this comparison, the receiver can decide whether to resynchronize the decryptor.
The systems and methods described by RFC 2405 and Mizikovsky et al. suffer at least from the deficiency that some type of synchronization information or signature is appended to each encrypted message, which decreases the rate of transmission of encrypted data. Further, in performing encryption/decryption and resynchronization, current cryptographic systems and methods are adapted to particular communications protocols and packet formats/sizes and are not generally applicable to different protocols.